From 60aef3ef13fe4de7c4a15d7ec8cf9c402ad75f89 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Tue, 11 Sep 2018 11:54:51 +0100 Subject: [PATCH] WIP --- debian/rules | 151 ++++++++++++++++++++++++++++++-- debian/rules.real | 214 +--------------------------------------------- 2 files changed, 143 insertions(+), 222 deletions(-) diff --git a/debian/rules b/debian/rules index a74bc9f77f..a910870091 100755 --- a/debian/rules +++ b/debian/rules @@ -11,24 +11,56 @@ VERSION := $(shell dpkg-parsechangelog -SVersion) VERSION_UPSTREAM := $(shell echo "$(VERSION)" | sed -e 's,-[^-]*$$,,') VERSION_BINNMU := $(shell echo "$(VERSION)" | sed -rne 's,.*\+b([0-9]+)$$,\1,p') -include debian/rules.defs +export WGET=/bin/false -setup: debian/control +%: + dh $@ + +setup: dh_testdir - $(MAKE) -f debian/rules.gen setup_$(DEB_HOST_ARCH) + : xxx config.sub etc. + ./configure \ + --disable-stubdom \ + --prefix=/usr \ + --includedir=/usr/include \ + --libdir=/usr/lib/$(DEB_HOST_MULTIARCH) \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --with-libexec-leaf-dir=xen-$(VERSION) \ + --disable-blktap1 \ + --disable-blktap2 \ + --disable-ocamltools \ + --disable-qemu-traditional --disable-rombios \ + --with-system-qemu=/usr/bin/qemu-system-i386 \ + --enable-ovmf --with-system-ovmf=/usr/share/ovmf/OVMF.fd \ + --with-system-seabios=/usr/share/seabios/bios-256k.bin + +CONFIG = \ + debug=n \ + XEN_COMPILE_ARCH=$(XEN_ARCH) \ + XEN_TARGET_ARCH=$(XEN_ARCH) \ + EXTRA_CFLAGS_XEN_TOOLS="$(CFLAGS)" \ + APPEND_CPPFLAGS="$(CPPFLAGS)" \ + APPEND_LDFLAGS="$(LDFLAGS)" \ + OCAMLDESTDIR=$(CURDIR)/$(BUILD_DIR)/install-utils_$(ARCH)/$(OCAML_STDLIB_DIR) \ + PYTHON=$(shell pyversions -r) \ + LANG=C.UTF-8 build: build-arch build-indep build-arch: setup dh_testdir - $(MAKE) -f debian/rules.gen build-arch_$(DEB_HOST_ARCH) + $(MAKE_CLEAN) -C $(DIR)/xen \ + XEN_COMPILE_ARCH=$(XEN_ARCH) \ + XEN_TARGET_ARCH=$(XEN_ARCH) \ + +$(MAKE_CLEAN) -C $(DIR) $(CONFIG) build-tools-public-headers + +$(MAKE_CLEAN) -C $(DIR)/tools $(CONFIG) build-indep: setup dh_testdir - $(MAKE) -f debian/rules.gen build-indep - -maintainerclean: - rm -f debian/control* debian/rules.gen debian/xen-hypervisor-* debian/xen-utils-[0-9]* + $(MAKE_CLEAN) -C $(DIR)/docs clean: debian/control dh_testdir @@ -38,11 +70,112 @@ clean: debian/control binary-indep: dh_testdir - $(MAKE) -f debian/rules.gen binary-indep + dh_testdir + dh_testroot + dh_prep + dh_install -X .svn --sourcedir=$(DIR) + dh_installinit --name xen -- defaults 20 21 + dh_installinit --name xend + dh_installinit --name xendomains --no-start -- defaults 21 20 + dh_installman \ + $(SOURCE_DIR)/docs/man1/* \ + $(SOURCE_DIR)/docs/man5/* \ + $(SOURCE_DIR)/docs/man8/* + dh_installdocs $(SOURCE_DIR)/docs/txt/misc + dh_link + dh_ucf + +$(MAKE_SELF) install-base + binary-arch: dh_testdir $(MAKE) -f debian/rules.gen binary-arch_$(DEB_HOST_ARCH) + +$(MAKE_CLEAN) -C $(DIR) install-tools-public-headers \ + DESTDIR=$(CURDIR)/$(INSTALL_DIR) $(CONFIG) + +$(MAKE_CLEAN) -C $(DIR)/tools install DESTDIR=$(CURDIR)/$(INSTALL_DIR) $(CONFIG) +ifneq ($(filter i386 amd64,$(ARCH)),) + # hvmloader + strip --remove-section=.comment --remove-section=.note $(INSTALL_DIR)/usr/lib/xen*/boot/* +endif + @rm -rf $(INSTALL_DIR) + +$(MAKE_CLEAN) -C $(SOURCE_DIR)/tools/examples install-configs + +$(MAKE_CLEAN) -C $(SOURCE_DIR)/tools/hotplug/common install-scripts + +$(MAKE_CLEAN) -C $(SOURCE_DIR)/tools/hotplug/Linux install-scripts + +$(MAKE_CLEAN) -C debian/scripts install + dh_testdir + dh_testroot + dh_prep + dh_installdirs boot + dh_install debian/templates/xen-hypervisor.bug/* usr/share/bug/$(PACKAGE_NAME) + cp $(DIR)/xen/xen$(IMAGE_SUFFIX) debian/$(PACKAGE_NAME)/boot/xen-$(VERSION)-$(FLAVOUR)$(IMAGE_SUFFIX) +ifeq ($(ARCH),amd64) + cp $(DIR)/xen/xen.efi debian/$(PACKAGE_NAME)/boot/xen-$(VERSION)-$(FLAVOUR).efi +endif + +$(MAKE_SELF) install-base + dh_testdir + dh_testroot + dh_prep + dh_install -Xtoolcore --sourcedir=$(DIR) usr/lib/*/lib*-$(VERSION).so* + dh_install debian/templates/libxen.bug/* usr/share/bug/$(PACKAGE_NAME) + dh_strip + dh_makeshlibs -V + dh_shlibdeps + +$(MAKE_SELF) install-base + dh_testdir + dh_testroot + dh_prep + # Move pkgconfig into a multiarch compliant place + mv $(DIR)/usr/share/pkgconfig $(DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/ + dh_install --sourcedir=$(DIR) + dh_strip + dh_shlibdeps + +$(MAKE_SELF) install-base + dh_testdir + dh_testroot + dh_prep + dh_install --sourcedir=$(DIR) + dh_strip + dh_makeshlibs -V + dh_shlibdeps + +$(MAKE_SELF) install-base + dh_testdir + dh_testroot + dh_prep + install -D -m644 debian/xen-utils.NEWS $(PACKAGE_DIR)/usr/share/doc/$(PACKAGE_NAME)/NEWS + install -D -m644 debian/xen-utils.README.Debian $(PACKAGE_DIR)/usr/share/doc/$(PACKAGE_NAME)/README.Debian + cp $(DIR)/usr/sbin/* $(DIR)/usr/lib/xen-$(VERSION)/bin/ + dh_install --sourcedir=$(DIR) usr/lib/xen-$(VERSION) + dh_install debian/templates/xen-utils.bug/* usr/share/bug/$(PACKAGE_NAME) + dh_lintian + ( echo -n "misc:Built-Using="; dpkg-query -f='$${source:Package} (= $${source:Version}), ' -W ipxe-qemu seabios; echo ) >> debian/$(PACKAGE_NAME).substvars + dh_python2 -V$(shell pyversions -rv) /usr/lib/xen-$(VERSION) + dh_strip + dh_makeshlibs -V + dh_shlibdeps + +$(MAKE_SELF) install-base + dh_testdir + dh_testroot + dh_prep + dh_install --sourcedir=$(DIR) + dh_ucf + +$(MAKE_SELF) install-base + dh_testdir + dh_testroot + dh_prep + dh_install --sourcedir=$(DIR) + dh_strip + dh_shlibdeps + +$(MAKE_SELF) install-base + dh_installchangelogs -XChangelog + dh_installdirs + dh_installdocs + dh_installexamples + dh_compress + dh_fixperms + dh_installdeb + dh_gencontrol -- $(GENCONTROL_ARGS) + dh_md5sums + dh_builddeb binary: binary-indep binary-arch diff --git a/debian/rules.real b/debian/rules.real index 95ecff6cbe..bb0b4e3fa2 100644 --- a/debian/rules.real +++ b/debian/rules.real @@ -28,194 +28,25 @@ build-indep: $(STAMPS_DIR)/build-docs setup-arch: $(STAMPS_DIR)/setup-utils_$(ARCH) setup-flavour: $(STAMPS_DIR)/setup-hypervisor_$(ARCH)_$(FLAVOUR) -$(STAMPS_DIR)/setup-docs: SOURCE_FILES = $(filter-out debian, $(wildcard *)) -$(STAMPS_DIR)/setup-docs: DIR=$(BUILD_DIR)/build-docs -$(STAMPS_DIR)/setup-docs: - @rm -rf $(DIR) - mkdir -p $(DIR) - cp -al $(SOURCE_FILES) $(DIR) - cp --remove-destination /usr/share/misc/config.guess /usr/share/misc/config.sub $(DIR) - cd $(DIR); \ - WGET=/bin/false \ - ./configure --disable-stubdom --disable-xen --prefix=/usr - @$(stamp) - -$(STAMPS_DIR)/setup-hypervisor_$(ARCH)_$(FLAVOUR): SOURCE_FILES = $(filter-out debian, $(wildcard *)) -$(STAMPS_DIR)/setup-hypervisor_$(ARCH)_$(FLAVOUR): DIR=$(BUILD_DIR)/build-hypervisor_$(ARCH)_$(FLAVOUR) -$(STAMPS_DIR)/setup-hypervisor_$(ARCH)_$(FLAVOUR): - @rm -rf $(DIR) - mkdir -p $(DIR) - cp -al $(SOURCE_FILES) $(DIR) - echo "XEN_VENDORVERSION := $(EXTRAVERSION)" > $(DIR)/xen/xen-version - @$(stamp) - -$(STAMPS_DIR)/setup-utils_$(ARCH): SOURCE_FILES = $(filter-out debian, $(wildcard *)) -$(STAMPS_DIR)/setup-utils_$(ARCH): DIR=$(BUILD_DIR)/build-utils_$(ARCH) -$(STAMPS_DIR)/setup-utils_$(ARCH): - @rm -rf $(DIR) - mkdir -p $(DIR) - cp -al $(SOURCE_FILES) $(DIR) - cp --remove-destination /usr/share/misc/config.guess /usr/share/misc/config.sub $(DIR) - cd $(DIR); \ - WGET=/bin/false \ - ./configure \ - --disable-docs --disable-stubdom --disable-xen \ - --prefix=/usr \ - --includedir=/usr/include \ - --libdir=/usr/lib/$(DEB_HOST_MULTIARCH) \ - --mandir=/usr/share/man \ - --infodir=/usr/share/info \ - --sysconfdir=/etc \ - --localstatedir=/var \ - --with-libexec-leaf-dir=xen-$(VERSION) \ - --disable-blktap1 \ - --disable-blktap2 \ - --disable-ocamltools \ - --disable-qemu-traditional --disable-rombios \ - --with-system-qemu=/usr/bin/qemu-system-i386 \ - --enable-ovmf --with-system-ovmf=/usr/share/ovmf/OVMF.fd \ - --with-system-seabios=/usr/share/seabios/bios-256k.bin - @$(stamp) - -$(STAMPS_DIR)/build-docs: DIR=$(BUILD_DIR)/build-docs -$(STAMPS_DIR)/build-docs: $(STAMPS_DIR)/setup-docs - +$(MAKE_CLEAN) -C $(DIR)/docs - touch $@ - -# Adding LANG=C.UTF-8 to the build environment to work around a bug in grep -# which causes it to switch into binary mode in the middle of a file. -# (see http://bugs.launchpad.net/bugs/1547466) - -$(STAMPS_DIR)/build-hypervisor_$(ARCH)_$(FLAVOUR): DIR=$(BUILD_DIR)/build-hypervisor_$(ARCH)_$(FLAVOUR) -$(STAMPS_DIR)/build-hypervisor_$(ARCH)_$(FLAVOUR): $(STAMPS_DIR)/setup-hypervisor_$(ARCH)_$(FLAVOUR) - +$(MAKE_CLEAN) -C $(DIR)/xen \ - XEN_COMPILE_ARCH=$(XEN_ARCH) \ - XEN_TARGET_ARCH=$(XEN_ARCH) \ - LANG=C.UTF-8 - touch $@ - -$(STAMPS_DIR)/build-utils_$(ARCH) \ -$(STAMPS_DIR)/install-utils_$(ARCH): CONFIG = \ - debug=n \ - XEN_COMPILE_ARCH=$(XEN_ARCH) \ - XEN_TARGET_ARCH=$(XEN_ARCH) \ - EXTRA_CFLAGS_XEN_TOOLS="$(CFLAGS)" \ - APPEND_CPPFLAGS="$(CPPFLAGS)" \ - APPEND_LDFLAGS="$(LDFLAGS)" \ - OCAMLDESTDIR=$(CURDIR)/$(BUILD_DIR)/install-utils_$(ARCH)/$(OCAML_STDLIB_DIR) \ - PYTHON=$(shell pyversions -r) \ - LANG=C.UTF-8 - -$(STAMPS_DIR)/build-utils_$(ARCH): DIR=$(BUILD_DIR)/build-utils_$(ARCH) -$(STAMPS_DIR)/build-utils_$(ARCH): $(STAMPS_DIR)/setup-utils_$(ARCH) - +$(MAKE_CLEAN) -C $(DIR) $(CONFIG) build-tools-public-headers - +$(MAKE_CLEAN) -C $(DIR)/tools $(CONFIG) - touch $@ - -$(STAMPS_DIR)/install-utils_$(ARCH): DIR = $(BUILD_DIR)/build-utils_$(ARCH) -$(STAMPS_DIR)/install-utils_$(ARCH): INSTALL_DIR = $(BUILD_DIR)/install-utils_$(ARCH) -$(STAMPS_DIR)/install-utils_$(ARCH): $(STAMPS_DIR)/build-utils_$(ARCH) - @rm -rf $(INSTALL_DIR) - mkdir -p $(INSTALL_DIR)/$(OCAML_DLL_DIR) - +$(MAKE_CLEAN) -C $(DIR) install-tools-public-headers \ - DESTDIR=$(CURDIR)/$(INSTALL_DIR) $(CONFIG) - +$(MAKE_CLEAN) -C $(DIR)/tools install DESTDIR=$(CURDIR)/$(INSTALL_DIR) $(CONFIG) -ifneq ($(filter i386 amd64,$(ARCH)),) - # hvmloader - strip --remove-section=.comment --remove-section=.note $(INSTALL_DIR)/usr/lib/xen*/boot/* -endif - touch $@ - -$(STAMPS_DIR)/install-utils-common: DIR = $(BUILD_DIR)/build-docs -$(STAMPS_DIR)/install-utils-common: INSTALL_DIR = $(BUILD_DIR)/install-utils-common -$(STAMPS_DIR)/install-utils-common: export DESTDIR = $(CURDIR)/$(INSTALL_DIR) -$(STAMPS_DIR)/install-utils-common: $(STAMPS_DIR)/build-docs - @rm -rf $(INSTALL_DIR) - +$(MAKE_CLEAN) -C $(SOURCE_DIR)/tools/examples install-configs - +$(MAKE_CLEAN) -C $(SOURCE_DIR)/tools/hotplug/common install-scripts - +$(MAKE_CLEAN) -C $(SOURCE_DIR)/tools/hotplug/Linux install-scripts - +$(MAKE_CLEAN) -C debian/scripts install - touch $@ - -$(STAMPS_DIR)/install-hypervisor-common: INSTALL_DIR = $(BUILD_DIR)/install-hypervisor-common -$(STAMPS_DIR)/install-hypervisor-common: $(STAMPS_DIR)/build-docs - @rm -rf $(INSTALL_DIR) - mkdir -p $(INSTALL_DIR) - - -install-base: - dh_installchangelogs -XChangelog - dh_installdirs - dh_installdocs - dh_installexamples - dh_compress - dh_fixperms - dh_installdeb - dh_gencontrol -- $(GENCONTROL_ARGS) - dh_md5sums - dh_builddeb - -install-dummy: - dh_testdir - dh_testroot - dh_prep - +$(MAKE_SELF) install-base - install-hypervisor_$(ARCH)_$(FLAVOUR): DIR=$(BUILD_DIR)/build-hypervisor_$(ARCH)_$(FLAVOUR) install-hypervisor_$(ARCH)_$(FLAVOUR): PACKAGE_NAME = xen-hypervisor-$(VERSION)-$(FLAVOUR) install-hypervisor_$(ARCH)_$(FLAVOUR): DH_OPTIONS = -p$(PACKAGE_NAME) install-hypervisor_$(ARCH)_$(FLAVOUR): $(STAMPS_DIR)/build-hypervisor_$(ARCH)_$(FLAVOUR) - dh_testdir - dh_testroot - dh_prep - dh_installdirs boot - dh_install debian/templates/xen-hypervisor.bug/* usr/share/bug/$(PACKAGE_NAME) - cp $(DIR)/xen/xen$(IMAGE_SUFFIX) debian/$(PACKAGE_NAME)/boot/xen-$(VERSION)-$(FLAVOUR)$(IMAGE_SUFFIX) -ifeq ($(ARCH),amd64) - cp $(DIR)/xen/xen.efi debian/$(PACKAGE_NAME)/boot/xen-$(VERSION)-$(FLAVOUR).efi -endif - +$(MAKE_SELF) install-base install-libxen_$(ARCH): DIR = $(BUILD_DIR)/install-utils_$(ARCH) install-libxen_$(ARCH): PACKAGE_NAME = libxen-$(VERSION) install-libxen_$(ARCH): DH_OPTIONS = -p$(PACKAGE_NAME) install-libxen_$(ARCH): $(STAMPS_DIR)/install-utils_$(ARCH) install-libxenstore_$(ARCH) - dh_testdir - dh_testroot - dh_prep - dh_install -Xtoolcore --sourcedir=$(DIR) usr/lib/*/lib*-$(VERSION).so* - dh_install debian/templates/libxen.bug/* usr/share/bug/$(PACKAGE_NAME) - dh_strip - dh_makeshlibs -V - dh_shlibdeps - +$(MAKE_SELF) install-base install-libxen-dev_$(ARCH): DIR = $(BUILD_DIR)/install-utils_$(ARCH) install-libxen-dev_$(ARCH): PACKAGE_NAME = libxen-dev install-libxen-dev_$(ARCH): DH_OPTIONS = -p$(PACKAGE_NAME) install-libxen-dev_$(ARCH): $(STAMPS_DIR)/install-utils_$(ARCH) - dh_testdir - dh_testroot - dh_prep - # Move pkgconfig into a multiarch compliant place - mv $(DIR)/usr/share/pkgconfig $(DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/ - dh_install --sourcedir=$(DIR) - dh_strip - dh_shlibdeps - +$(MAKE_SELF) install-base install-libxenstore_$(ARCH): DIR = $(BUILD_DIR)/install-utils_$(ARCH) install-libxenstore_$(ARCH): PACKAGE_NAME = libxenstore3.0 install-libxenstore_$(ARCH): DH_OPTIONS = -p$(PACKAGE_NAME) install-libxenstore_$(ARCH): $(STAMPS_DIR)/install-utils_$(ARCH) - dh_testdir - dh_testroot - dh_prep - dh_install --sourcedir=$(DIR) - dh_strip - dh_makeshlibs -V - dh_shlibdeps - +$(MAKE_SELF) install-base install-utils_$(ARCH): SOURCE_DIR = $(BUILD_DIR)/build-utils_$(ARCH) install-utils_$(ARCH): DIR = $(BUILD_DIR)/install-utils_$(ARCH) @@ -223,64 +54,21 @@ install-utils_$(ARCH): PACKAGE_NAME = xen-utils-$(VERSION) install-utils_$(ARCH): PACKAGE_DIR = debian/$(PACKAGE_NAME) install-utils_$(ARCH): DH_OPTIONS = -p$(PACKAGE_NAME) install-utils_$(ARCH): $(STAMPS_DIR)/install-utils_$(ARCH) install-libxen_$(ARCH) - dh_testdir - dh_testroot - dh_prep - install -D -m644 debian/xen-utils.NEWS $(PACKAGE_DIR)/usr/share/doc/$(PACKAGE_NAME)/NEWS - install -D -m644 debian/xen-utils.README.Debian $(PACKAGE_DIR)/usr/share/doc/$(PACKAGE_NAME)/README.Debian - cp $(DIR)/usr/sbin/* $(DIR)/usr/lib/xen-$(VERSION)/bin/ - dh_install --sourcedir=$(DIR) usr/lib/xen-$(VERSION) - dh_install debian/templates/xen-utils.bug/* usr/share/bug/$(PACKAGE_NAME) - dh_lintian - ( echo -n "misc:Built-Using="; dpkg-query -f='$${source:Package} (= $${source:Version}), ' -W ipxe-qemu seabios; echo ) >> debian/$(PACKAGE_NAME).substvars - dh_python2 -V$(shell pyversions -rv) /usr/lib/xen-$(VERSION) - dh_strip - dh_makeshlibs -V - dh_shlibdeps - +$(MAKE_SELF) install-base install-utils-common: SOURCE_DIR = $(BUILD_DIR)/build-docs install-utils-common: DIR = $(BUILD_DIR)/install-utils-common install-utils-common: PACKAGE_NAME = xen-utils-common install-utils-common: DH_OPTIONS = -p$(PACKAGE_NAME) install-utils-common: $(STAMPS_DIR)/install-utils-common - dh_testdir - dh_testroot - dh_prep - dh_install -X .svn --sourcedir=$(DIR) - dh_installinit --name xen -- defaults 20 21 - dh_installinit --name xend - dh_installinit --name xendomains --no-start -- defaults 21 20 - dh_installman \ - $(SOURCE_DIR)/docs/man1/* \ - $(SOURCE_DIR)/docs/man5/* \ - $(SOURCE_DIR)/docs/man8/* - dh_installdocs $(SOURCE_DIR)/docs/txt/misc - dh_link - dh_ucf - +$(MAKE_SELF) install-base install-hypervisor-common: DIR = $(BUILD_DIR)/install-hypervisor-common install-hypervisor-common: PACKAGE_NAME = xen-hypervisor-common install-hypervisor-common: DH_OPTIONS = -p$(PACKAGE_NAME) install-hypervisor-common: $(STAMPS_DIR)/install-hypervisor-common - dh_testdir - dh_testroot - dh_prep - dh_install --sourcedir=$(DIR) - dh_ucf - +$(MAKE_SELF) install-base install-xenstore-utils_$(ARCH): DIR = $(BUILD_DIR)/install-utils_$(ARCH) -install-xenstore-utils_$(ARCH): PACKAGE_NAME = xenstore-utils +Install-xenstore-utils_$(ARCH): PACKAGE_NAME = xenstore-utils install-xenstore-utils_$(ARCH): DH_OPTIONS = -p$(PACKAGE_NAME) install-xenstore-utils_$(ARCH): $(STAMPS_DIR)/install-utils_$(ARCH) install-libxenstore_$(ARCH) - dh_testdir - dh_testroot - dh_prep - dh_install --sourcedir=$(DIR) - dh_strip - dh_shlibdeps - +$(MAKE_SELF) install-base # vim: filetype=make -- 2.30.2